Method and computer program for producing a regulator or controller

ABSTRACT

To produce a controller or regulator ( 1 ), a control or regulation process ( 3 ) is first designed and simulated on a development system ( 20 ). The process source code ( 25 ) for a target system ( 2 ) arranged in the controller or regulator ( 1 ) is then generated, and also a description file ( 28, 29 ) in HTML and/or XML format which, among other things, describes the parameters for the controller or regulator ( 1 ). Tags which characterize the parameters are used in the description file ( 28, 29 ). The description file ( 28, 29 ) is then converted, in a web server generator ( 30 ), into data and source code ( 31, 34 ) for a web server ( 5 ) which can run on the target system ( 2 ). In this context, the web server generator ( 30 ) and/or web server ( 5 ) use/uses the tags to insert input and output elements which can be used for setting and reading the respective parameters. The present system can be used for easily producing an interface for controlling the process ( 3 ) running on the target ( 2 ), which interface can be used by any client computer ( 7 ) without special software.

TECHNICAL FIELD

[0001] The invention relates to a method and also to a computer program for producing a regulator or controller in accordance with the precharacterizing clause of the independent claims.

PRIOR ART

[0002] Various development systems exist which can be used for designing and simulating controllers or regulators, such as Matlab® and Simulink® from the company The MathWorks, Inc., Natick (USA)

[0003] Such development systems generally permit the designed controllers to be converted into C code, so that they can be compiled using a suitable compiler and can be used as process code on a target system in a regulator.

[0004] In addition, the development systems provide the option of testing and altering parameters of the process running on the target system from a client computer. To this end, however, expensive and complex programs generally need to be installed on the client computer.

DESCRIPTION OF THE INVENTION

[0005] The object is therefore to provide a method and software of the type mentioned initially which permits the above problem to be solved in a simple manner.

[0006] This object is achieved by the method and by the computer program in accordance with the independent claims.

[0007] The development system thus produces a description file which describes at least the parameters of the control or regulation process. In particular, the description file contains the names of the parameters, preferably also the type and the possible values of the parameters, The description file can then be used by one or more suitable programs to generate a web server or data for a web server which is capable of running on the target system (i.e. the controller or regulator) and can provide at least one process control document in HTML format and/or XML or XML/XSL format which contains suitable input and/or output elements for the parameters. The process control document can then be retrieved by a common browser on any client computer, so that the parameters of the process can easily be read and changed.

[0008] Preferably, the description file indicates how the parameters are to be shown in the process control document. By way of example, the description file stipulates the order or the locations in or at which the parameters are to be appear in the process control document. Preferably, the description file is likewise in HTML or XML format, which simplifies later conversion.

[0009] Preferably, in addition to the description file, a parameter list file is produced which contains a list of the parameters. Generally, common development systems are able to do this. The parameter list file is then used to ascertain the names of the parameters, and the information obtained in this way can be used to examine or parse the description file in order to find out where the parameters appear. The appropriate locations are then suitably marked using control data, preferably using HTML tags. This makes it possible to use the files of a conventional development system to produce a marked description file which can be supplied to a suitable web server generator, for example.

[0010] Preferably, the development system is used to produce an access interface file which contains declarations of routines which can be used to access the parameters of the running process code. This access interface file is used when the web server is produced in order to generate code which can be used to access the parameters. This action is particularly suitable for development systems which are able to produce an access interface file.

[0011] To produce the web server, a web server source code is preferably produced which is compiled together with the access interface file. The process code also preferably has a process source code produced for it which is compiled and is linked to the web server source code.

[0012] Unlike known solutions, in the method according to the invention, the description file and possibly the parameter list file are used to provide control data which are used for automated production of the web server, which is one of the ways in which the present invention contributes to the technical field. The present way in which information is provided also permits interaction of programs (development system, web server generator) which generally operate using incompatible data formats.

[0013] Another novelty is the use of an access interface file as control data for a stub filler in order to carry out automated conversion or filling of the stubs into glue code.

[0014] The method is preferably in the form of a computer program product which comprises one or more programs or modules and is stored on at least one computer-readable medium or is modulated onto a carrier.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Other refinements, advantages and applications of the invention can be found in the dependent claims and in the description which now follows using the figures, in which:

[0016]FIG. 1 shows a schematic illustration of the components for the development and for the operation of a controller or regulator, and

[0017]FIG. 2 shows a flowchart with the program components and files in one possible embodiment of the invention,

WAYS OF IMPLEMENTING THE INVENTION

[0018] The most important components for developing and operating a regulator or controller 1 are shown in FIG. 11.

[0019] The controller 1 has a target system 2 which is able to execute a regulation or control process 3 which is in the form of a process code. To perform its regulation or control tasks, the regulation or control process 3 can access digital or analog inputs and outputs 4 of the regulator or controller 1.

[0020] The target system 2 also runs a web server 5 connected to a TCP/IP interface 6. The web server 5 is able to produce one or more HTML and/or XML documents (process control document 8) which represent the parameters of the process 3 and contain input elements for changing theme The web server 5 is connected via the TCP/IP interface 6 by means of a line or an arbitrary network, via which the HTML and/or XML document(s) can be retrieved.

[0021] In one extremely simple embodiment, the target system 2 can, as an “embedded system”, be a microprocessor system without an operating system, or just with a minimal operating system, in which case all the necessary software is contained in the process 3 or in the web server 5. However, the target system 2 can also be in the form of a computer with an operating system which provides the process 3 and the web server 5 with certain services.

[0022]FIG. 1 shows a client computer 7 which can be used to request the process control document 8 using TCP/IP and to display it in a web browser. In the present case, the process control document 8 contains, by way of example, a graphical representation of the controller or regulator in the form of a block diagram and also a list of the parameter(s). In FIG. 1, by way of example, a parameter having the name “gain_x” is provided. It is shown together with its current value (“2”) in the process control document 8. The value appears in an input field 9, can be edited and can be sent to the web server 5 by clicking on a button 10.

[0023] When the web server 5 produces the process control document 8, it first needs to request the value of the parameter(s) to be displayed from the process 3. If the user on the client computer 7 changes the value of the parameter, the web server 5 needs to transfer the new value to the process 3. This requires a suitable link between the web server 5 and the process 3.

[0024] The text below describes how a controller 1 and, in particular, the software for the web server 5 and the process 3 can be developed and produced in an efficient manner.

[0025] For this purpose, the controller or regulator is first developed on a development computer 11 (or possibly a plurality of computers linked in a suitable manner) The process code is then produced for the process 3, and the web server source code or web server code is produced for the web server 5. These codes are capable of running on the target system 2 and are transferred to each controller or regulator which is to be produced.

[0026] A preferred embodiment of a flowchart with the program components and files on the development computer 11 is shown in FIG. 2.

[0027] In a first step of the development, a development system 20 is used which permits the regulator or controller to be designed and simulated. A design module 21 and a simulation module 22 are available for this purpose.

[0028] The design module 21 allows, by way of example, the controller or regulator to be shown in the form of a diagram, and allows the inputs and outputs and also the links between the individual components to be defined. In addition, the parameters stipulating the response of the controller or regulator can be defined. Examples of suitable parameters are gain factors, switch settings, time constants, decision variables and other values. Each parameter has at least a name and a type (e.g. “double”, “float”, “Boolean”). If appropriate, it may also have other attributes, such as a statement indicating whether it can only be read Or also changed.

[0029] In the present example, by way of illustration, a controller or regulator is defined which has an input, an amplifier and two outputs. The parameter provided is the amplifier's gain factor, which is denoted as “gain_x” and has the type “double”.

[0030] The simulation module allows the response of the controller or regulator defined in this manner to be computer simulated. This permits initial tests on the controller or regulator.

[0031] If the design has been completed to the extent that a controller or regulator 1 can be produced, the code needs to be produced for the process 3. For this purpose, a code generator 23 is provided. The code generator takes the design data from the design module 21 and produces three files or file types: a parameter list file 24, the process source code 25 and an access interface file 26.

[0032] The parameter list file 24 contains a list of the parameters. In particular, it cites the name and type for each parameter. In the present example, it contains only one entry, which may appear as follows, for example

[0033] gain_x double

[0034] The process source code 25 is the source code for the process 3. It contains the routines for executing the control or regulation process on the target system 2. By way of example, it may be a source code in C. The process source code also contains accessor routines which allow the parameters of the process to be read or altered.

[0035] The access interface file 26 contains a declaration of the accessor routines, e.g. in the form of a header file for the programming language C. In the example above, it could define the following two routines, for example:

[0036] double read_gain_x(void); //read gain_x

[0037] void write_gain_x(double); //set gain_x

[0038] (In one specific embodiment, error situations should additionally be tested and appropriate error messages should be exchanged. Thus, the function write_gain_x( ) could return an error message, for example, if the desired parameter value lies outside certain limit values.)

[0039] In addition, the development system contains an HMTL and/or XML generator 27 which makes it possible to convert the controller or regulator representation produced in the design module 21 into an HTML and/or XML format and to produce a corresponding description file 28, which should also be understood as meaning a group of a plurality of linked documents The description file 28 contains, e.g. as a link, a diagram of the controller or regulator and also a list of the parameters. An extract therefrom has the following appearance, for example:

[0040] <HTML>

[0041] . . .

[0042] <IMG SRC=“diagram.gif”>

[0043] . . .

[0044] <P>gain_x: 1.0

[0045] . . .

[0046] </HTML>

[0047] The components of the development system 20 which have been described to this extent may be conventional program products, for example. Thus, in particular, it is possible to use Matlab from the company the MathWorks, Inc., which was mentioned in the introduction. In this context, the simulation can be carried out in Matlab itself. A design module which may be used is Simulink® or Stateflow®. The code generator 23 used could be “RealTime Workshop” or “Stateflow Coder”, and the HTML and/or XML generator used could be “MATLAB Report Generator” and “Simulink”, all from the company The MathWorks, Inc.

[0048] The description file 28 and the parameter list file 24 are supplied to a tag generator 37. The tag generator 37 is a computer program or program module and introduces into the description file 28 HTML tags which characterize the parameters, so that the web server 5 is later able to insert the appropriate input and output elements into the process control document. By way of example, the description file can be converted in the manner below.

[0049] <HTML>

[0050] . . .

[0051] <IMG SRC=“diagram.gif”>

[0052] . . .

[0053] <META

[0054] NAME=“parameter info”

[0055] TEXT=“gain_(—x:”)

[0056] PARAMETERNAME-“gain_x”

[0057] TYPE-“double”

[0058] >

[0059] </HTML>

[0060] In the variant shown here, the meta thus replaces the line “<P>gain_x: 1.0” and defines that the text “gain_x:”, the input field 9 and the appropriate button 10 need to be arranged at the appropriate position.

[0061] The description file 29 complemented with the tags is then supplied to a web server generator 30. The web server generator produces the web server source code 31 and the data for the web server 5. It also produces a stub file 32 which contains empty routines (“stubs”) for each parameter. These routines are later called by the web server 5 in order to read and write the respective parameters, In the example above, the stub file 32 may define the following routines, for example:

[0062] double GetParameter_gain_x(void)

[0063] {

[0064] }

[0065] void SetParameter_gain_x(double)

[0066] {

[0067] }

[0068] To produce the web server source code and the stub file 32, a conventional product is preferably used, for example EmWeb™ from the company Agranat Systems, Inc., Maynard, USA.

[0069] In a subsequent step, the stub file 32 and the access interface file 26 are supplied to a stub filler 33. By way of example, the stub filler 33 may be in the form of an independent program or program module. It inserts the appropriate routine of the access interface file 26 into each routine of the stub file 32 and produces a glue file with glue source code 34. In the present example, a simplified version of this file may have the following appearance, for example:

[0070] double GetParameter_gain_x(void)

[0071] {

[0072] return read_gain_x( );

[0073] }

[0074] void SetParameter_gain_x(double x)

[0075] {

[0076] write_gain_x(x),

[0077] }

[0078] (In this case too, error handling code can preferably also be added.)

[0079] The web server source code 31, the glue source code 34, the access interface file 26 and the process source code 25 can now be compiled and linked in a compiler/linker 35 in order to produce a code file 36 with the code, capable of running on the target system 2, for the process 3 and the web server 5. This code can be transferred to the target system 2.

[0080] Once installed on the target system 2, the web server 5 provides the client computer 7, upon request, with the process control document 8. In the present example, it could have the following appearance, for example:

[0081] <HTML>

[0082] . . .

[0083] <IMG SRC=“diagram.gif”>

[0084] . . .

[0085] <FORM METHOD=“GET”, ACTION=“/bin/enter”>

[0086] <P>gain_x:

[0087] <INPUT TYPE=“TEXT” NAME-“gain_x”>

[0088] <INPUT TYPE=“submit” VALUE=“OK”>

[0089] </FORM>

[0090] . . .

[0091] </HTML>

[0092] In the example above, the development system 20, the tag generator 37, the web server generator 30 and the stub filler 33 are separate programs or program groups. This demarcation is not necessary, however. Thus, by way of example, the HTML and/or XML generator 27 can be designed such that it inserts the tags required for the web server generator 30 directly into the description file, which means that the tag generator 37 can be eliminated. As an alternative to this, the role of the tag generator 37 could also be adopted by the web server generator 30. The stub filler 33 could also be integrated into the web server generator 30 or into the code generator 23.

[0093] In the example above, the description file is preferably in HTML format. In addition to this or as an alternative to this, it can follow the XML formatting rules. In this case, instead of the tags, other, XML compatible data structures for controlling the web server generator 30 can also be inserted into the description file.

[0094] In the examples above, the parameters appear as a list at the end of the process control document 8. However, it is also conceivable for their values to be inserted directly into the diagram appearing in the top part of the document. In this case, the HTML and/or XML generator 27 needs to be matched such that it provides the space required for this purpose in the diagram, and it is conceivable, for example, for the web server 5 to produce a Java applet which responds to click actions on the parameters appearing in the diagram with appropriate input masks.

[0095] In the example above, the tags in the description file 29 are interpreted by the web server generator 30. However, it is also conceivable for them not to be evaluated and converted into corresponding input and output elements until later by the web server 5.

[0096] In the embodiment shown in FIG. 2, the code parts, such as the process source code, the web server source code and the glue source code, are first produced as source code and are then compiled and linked. However, it is conceivable for code which can at least in part run directly to be produced, which then need only be linked.

List of Reference Symbols

[0097]1: Controller

[0098]2: Target system

[0099]3: Regulation or control process or process code

[0100]4: Inputs and outputs of the regulator or controller 1

[0101]5: Web server

[0102]6: TCP/IP interface

[0103]7: Client computer

[0104]8: Process control document

[0105]9: Input field

[0106]10: Button

[0107]11: Development computer

[0108]20: Development system

[0109]21: Design module

[0110]22: Simulation module

[0111]23: Code generator

[0112]24: Parameter list file

[0113]25: Process source code

[0114]26: Access interface file

[0115]27: HTML and/or XML generator

[0116]28: Description file

[0117]29: Description file with tags

[0118]30: Web server generator

[0119]31: Web server source code

[0120]32: Stub file

[0121]33: Stub filler

[0122]34: Glue source code

[0123]35: Compiler/linker

[0124]36: Code file

[0125]37: Tag generator 

1. A method for producing a regulator or controller (1) having a regulation or control process (3) which is controlled by one or more parameters and runs on a target system (2) for the regulator (1), where the regulation or control process (3) is simulated on a development system (20) and the development system (20) is used to produce process code (3) intended for execution on the target (2), and where the method is characterized by the following steps: A description file (28, 29) is produced from the development system (20), the description file (28, 29) describing at least the parameters, a web server (5) or data for a web server (5) is produced from the description file (28, 29) or from data which have been derived from the description file (28, 29), the web server (5) being capable of running on the target system (2) and being designed to access the parameters of the process code (3) running on the target system (2) and to produce a process control document (8) in HTML and/or XML format which contains input and/or output elements for the parameters.
 2. The method as claimed in claim 1, characterized in that the description file (28, 29) comprises statements for arranging the parameters in the process control document (8).
 3. The method as claimed in claim 2, characterized in that the description file (28, 29) is in HTML and/or XML format.
 4. The method as claimed in one of claim 2 or 3, characterized by the following steps: A parameter list file (24) is produced using the development system (20), the parameter list file (24) containing at least one name used in the description file (28, 29) for each parameter, control data are produced in the description file (28, 29) using the parameter list file (24), the control data characterizing the parameters appearing in the description file (28, 29), and, in particular, the control data being HTML and/or XML tags.
 5. The method as claimed in one of the preceding claims, characterized in that the development system (20) is used to produce at least one access interface file (26) having declarations for routines for accessing the parameters of the running process code (3), and in that the access interface file (26) is used when the web server (5) is produced in order to produce code for accessing the parameters.
 6. The method as claimed in claim 5, characterized in that a web server generator (30) is used to produce web server source code (31, 34) for at least part of the web server (5), and, in particular, in that the web server source code (31, 34) is compiled together with the access interface file (26).
 7. The method as claimed in claim 6, characterized in that the web server generator (30) is used to produce at least one stub file (32) having empty routines for accessing the parameters, and in that a stub filler (33) inserts the routines defined in the access interface file (26) into the routines implemented in the stub file in order to produce a glue source code (34).
 8. The method as claimed in claim 7, characterized in that process source code (25) is produced for at least part of the process code (3), the access interface file (6) describing routines implemented in the process source code (25), and in that the process source code (25), the web server source code (31), the glue source code (34) and the access interface file (26) are compiled and are linked to one another.
 9. A computer program product having program code means which are stored on at least one computer-readable medium or are modulated onto a carrier in order to carry out the method as claimed in one of the preceding claims when the computer program product is executed on at least one computer. 